﻿using MediatR;
using System.ComponentModel.DataAnnotations;

namespace S.Services.SheepMale.Api.Application.Command.MarketCommand
{
    public class MarketUpdCommand:IRequest<int>
    {
        /// <summary>
        /// 羊只销售编号
        /// </summary>
        public int MarketId { get; set; }
        /// <summary>
        /// 销售日期
        /// </summary>
        public DateTime? MarketDate { get; set; }
        /// <summary>
        /// 单据号
        /// </summary>
        [StringLength(50)]
        public string? DocumentNumber { get; set; }
        /// <summary>
        /// 耳号
        /// </summary>
        public string? Earbugles { get; set; }
        /// <summary>
        /// 客户
        /// </summary>
        public string? Client { get; set; }
        /// <summary>
        /// 仓库
        /// </summary>
        public string? Stash { get; set; }
        /// <summary>
        /// 只数
        /// </summary>
        public int SheepNumber { get; set; }
        /// <summary>
        /// 总成交价
        /// </summary>
        public decimal TotalPrice { get; set; }
        /// <summary>
        /// 审核状态
        /// </summary>
        public int AuditState { get; set; }
        /// <summary>
        /// 部门
        /// </summary>
        public string? DepartmentId { get; set; }
        /// <summary>
        /// 成交价
        /// </summary>
        public decimal PayPrice { get; set; }
        /// <summary>
        /// 定价
        /// </summary>
        public decimal FixPrice { get; set; }
        /// <summary>
        /// 等级
        /// </summary>
        public string? Level { get; set; }
        /// <summary>
        /// 品种
        /// </summary>
        public string? Breed { get; set; }
        /// <summary>
        /// 性别
        /// </summary>
        public int? SheepSex { get; set; }
        /// <summary>
        /// 羊只类型
        /// </summary>
        public string? SheepTypeInfo { get; set; }
        /// <summary>
        /// 繁殖状态
        /// </summary>
        public string? Propagate { get; set; }
        /// <summary>
        /// 栋舍
        /// </summary>
        public string? CottageName { get; set; }
        /// <summary>
        /// 栏位
        /// </summary>
        public string? FieldName { get; set; }
        /// <summary>
        /// 出生日期
        /// </summary>
        public DateTime? BirthDay { get; set; }
        /// <summary>
        /// 出生重量(kg)
        /// </summary>
        public decimal Birthweight { get; set; }
        /// <summary>
        /// 断奶重量(kg)
        /// </summary>
        public decimal Weaningweight { get; set; }
        /// <summary>
        /// 父耳号
        /// </summary>
        public string? FatherEar { get; set; }
        /// <summary>
        /// 母耳号
        /// </summary>
        public string? MomtherEar { get; set; }
        /// <summary>
        /// 月龄
        /// </summary>
        public int? MonthAge { get; set; }
        /// <summary>
        /// 收货地址
        /// </summary>
        [StringLength(50)]
        public string? MarketAddress { get; set; }
        /// <summary>
        /// 销售员
        /// </summary>
        [StringLength(50)]
        public string? SellPeople { get; set; }
        /// <summary>
        /// 创建人
        /// </summary>
        public string? CreateBy { get; set; }

        /// <summary>
        /// 创建日期
        /// </summary>
        public DateTime? CreateDate { get; set; }

        /// <summary>
        /// 修改人
        /// </summary>
        public string? UpdateBy { get; set; }

        /// <summary>
        /// 修改日期
        /// </summary>
        public DateTime? UpdateDate { get; set; }
        /// <summary>
        /// 审核人
        /// </summary>
        [StringLength(50)]
        public string? ExamineBy { get; set; }
        /// <summary>
        /// 审核时间
        /// </summary>
        public DateTime? ExamineDate { get; set; }
        /// <summary>
        /// 财务审核人
        /// </summary>
        [StringLength(50)]
        public string? FinanceBy { get; set; }
        /// <summary>
        /// 财务审核时间
        /// </summary>
        public DateTime? FinanceDate { get; set; }
        /// <summary>
        /// 仓库审核人
        /// </summary>
        [StringLength(50)]
        public string? StashBy { get; set; }
        /// <summary>
        /// 仓库审核时间
        /// </summary>
        public DateTime? StashDate { get; set; }
    }
}
